package com.cn.kehong.domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class OeeDeviceRateExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public OeeDeviceRateExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(String value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(String value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(String value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(String value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(String value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(String value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLike(String value) {
            addCriterion("id like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotLike(String value) {
            addCriterion("id not like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<String> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<String> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(String value1, String value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(String value1, String value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andOeeIdIsNull() {
            addCriterion("oee_id is null");
            return (Criteria) this;
        }

        public Criteria andOeeIdIsNotNull() {
            addCriterion("oee_id is not null");
            return (Criteria) this;
        }

        public Criteria andOeeIdEqualTo(String value) {
            addCriterion("oee_id =", value, "oeeId");
            return (Criteria) this;
        }

        public Criteria andOeeIdNotEqualTo(String value) {
            addCriterion("oee_id <>", value, "oeeId");
            return (Criteria) this;
        }

        public Criteria andOeeIdGreaterThan(String value) {
            addCriterion("oee_id >", value, "oeeId");
            return (Criteria) this;
        }

        public Criteria andOeeIdGreaterThanOrEqualTo(String value) {
            addCriterion("oee_id >=", value, "oeeId");
            return (Criteria) this;
        }

        public Criteria andOeeIdLessThan(String value) {
            addCriterion("oee_id <", value, "oeeId");
            return (Criteria) this;
        }

        public Criteria andOeeIdLessThanOrEqualTo(String value) {
            addCriterion("oee_id <=", value, "oeeId");
            return (Criteria) this;
        }

        public Criteria andOeeIdLike(String value) {
            addCriterion("oee_id like", value, "oeeId");
            return (Criteria) this;
        }

        public Criteria andOeeIdNotLike(String value) {
            addCriterion("oee_id not like", value, "oeeId");
            return (Criteria) this;
        }

        public Criteria andOeeIdIn(List<String> values) {
            addCriterion("oee_id in", values, "oeeId");
            return (Criteria) this;
        }

        public Criteria andOeeIdNotIn(List<String> values) {
            addCriterion("oee_id not in", values, "oeeId");
            return (Criteria) this;
        }

        public Criteria andOeeIdBetween(String value1, String value2) {
            addCriterion("oee_id between", value1, value2, "oeeId");
            return (Criteria) this;
        }

        public Criteria andOeeIdNotBetween(String value1, String value2) {
            addCriterion("oee_id not between", value1, value2, "oeeId");
            return (Criteria) this;
        }

        public Criteria andLineBodyNumberIsNull() {
            addCriterion("line_body_number is null");
            return (Criteria) this;
        }

        public Criteria andLineBodyNumberIsNotNull() {
            addCriterion("line_body_number is not null");
            return (Criteria) this;
        }

        public Criteria andLineBodyNumberEqualTo(String value) {
            addCriterion("line_body_number =", value, "lineBodyNumber");
            return (Criteria) this;
        }

        public Criteria andLineBodyNumberNotEqualTo(String value) {
            addCriterion("line_body_number <>", value, "lineBodyNumber");
            return (Criteria) this;
        }

        public Criteria andLineBodyNumberGreaterThan(String value) {
            addCriterion("line_body_number >", value, "lineBodyNumber");
            return (Criteria) this;
        }

        public Criteria andLineBodyNumberGreaterThanOrEqualTo(String value) {
            addCriterion("line_body_number >=", value, "lineBodyNumber");
            return (Criteria) this;
        }

        public Criteria andLineBodyNumberLessThan(String value) {
            addCriterion("line_body_number <", value, "lineBodyNumber");
            return (Criteria) this;
        }

        public Criteria andLineBodyNumberLessThanOrEqualTo(String value) {
            addCriterion("line_body_number <=", value, "lineBodyNumber");
            return (Criteria) this;
        }

        public Criteria andLineBodyNumberLike(String value) {
            addCriterion("line_body_number like", value, "lineBodyNumber");
            return (Criteria) this;
        }

        public Criteria andLineBodyNumberNotLike(String value) {
            addCriterion("line_body_number not like", value, "lineBodyNumber");
            return (Criteria) this;
        }

        public Criteria andLineBodyNumberIn(List<String> values) {
            addCriterion("line_body_number in", values, "lineBodyNumber");
            return (Criteria) this;
        }

        public Criteria andLineBodyNumberNotIn(List<String> values) {
            addCriterion("line_body_number not in", values, "lineBodyNumber");
            return (Criteria) this;
        }

        public Criteria andLineBodyNumberBetween(String value1, String value2) {
            addCriterion("line_body_number between", value1, value2, "lineBodyNumber");
            return (Criteria) this;
        }

        public Criteria andLineBodyNumberNotBetween(String value1, String value2) {
            addCriterion("line_body_number not between", value1, value2, "lineBodyNumber");
            return (Criteria) this;
        }

        public Criteria andPlanningWorkIsNull() {
            addCriterion("planning_work is null");
            return (Criteria) this;
        }

        public Criteria andPlanningWorkIsNotNull() {
            addCriterion("planning_work is not null");
            return (Criteria) this;
        }

        public Criteria andPlanningWorkEqualTo(Integer value) {
            addCriterion("planning_work =", value, "planningWork");
            return (Criteria) this;
        }

        public Criteria andPlanningWorkNotEqualTo(Integer value) {
            addCriterion("planning_work <>", value, "planningWork");
            return (Criteria) this;
        }

        public Criteria andPlanningWorkGreaterThan(Integer value) {
            addCriterion("planning_work >", value, "planningWork");
            return (Criteria) this;
        }

        public Criteria andPlanningWorkGreaterThanOrEqualTo(Integer value) {
            addCriterion("planning_work >=", value, "planningWork");
            return (Criteria) this;
        }

        public Criteria andPlanningWorkLessThan(Integer value) {
            addCriterion("planning_work <", value, "planningWork");
            return (Criteria) this;
        }

        public Criteria andPlanningWorkLessThanOrEqualTo(Integer value) {
            addCriterion("planning_work <=", value, "planningWork");
            return (Criteria) this;
        }

        public Criteria andPlanningWorkIn(List<Integer> values) {
            addCriterion("planning_work in", values, "planningWork");
            return (Criteria) this;
        }

        public Criteria andPlanningWorkNotIn(List<Integer> values) {
            addCriterion("planning_work not in", values, "planningWork");
            return (Criteria) this;
        }

        public Criteria andPlanningWorkBetween(Integer value1, Integer value2) {
            addCriterion("planning_work between", value1, value2, "planningWork");
            return (Criteria) this;
        }

        public Criteria andPlanningWorkNotBetween(Integer value1, Integer value2) {
            addCriterion("planning_work not between", value1, value2, "planningWork");
            return (Criteria) this;
        }

        public Criteria andScheduledOutageIsNull() {
            addCriterion("scheduled_outage is null");
            return (Criteria) this;
        }

        public Criteria andScheduledOutageIsNotNull() {
            addCriterion("scheduled_outage is not null");
            return (Criteria) this;
        }

        public Criteria andScheduledOutageEqualTo(Integer value) {
            addCriterion("scheduled_outage =", value, "scheduledOutage");
            return (Criteria) this;
        }

        public Criteria andScheduledOutageNotEqualTo(Integer value) {
            addCriterion("scheduled_outage <>", value, "scheduledOutage");
            return (Criteria) this;
        }

        public Criteria andScheduledOutageGreaterThan(Integer value) {
            addCriterion("scheduled_outage >", value, "scheduledOutage");
            return (Criteria) this;
        }

        public Criteria andScheduledOutageGreaterThanOrEqualTo(Integer value) {
            addCriterion("scheduled_outage >=", value, "scheduledOutage");
            return (Criteria) this;
        }

        public Criteria andScheduledOutageLessThan(Integer value) {
            addCriterion("scheduled_outage <", value, "scheduledOutage");
            return (Criteria) this;
        }

        public Criteria andScheduledOutageLessThanOrEqualTo(Integer value) {
            addCriterion("scheduled_outage <=", value, "scheduledOutage");
            return (Criteria) this;
        }

        public Criteria andScheduledOutageIn(List<Integer> values) {
            addCriterion("scheduled_outage in", values, "scheduledOutage");
            return (Criteria) this;
        }

        public Criteria andScheduledOutageNotIn(List<Integer> values) {
            addCriterion("scheduled_outage not in", values, "scheduledOutage");
            return (Criteria) this;
        }

        public Criteria andScheduledOutageBetween(Integer value1, Integer value2) {
            addCriterion("scheduled_outage between", value1, value2, "scheduledOutage");
            return (Criteria) this;
        }

        public Criteria andScheduledOutageNotBetween(Integer value1, Integer value2) {
            addCriterion("scheduled_outage not between", value1, value2, "scheduledOutage");
            return (Criteria) this;
        }

        public Criteria andMaterialShortageIsNull() {
            addCriterion("material_shortage is null");
            return (Criteria) this;
        }

        public Criteria andMaterialShortageIsNotNull() {
            addCriterion("material_shortage is not null");
            return (Criteria) this;
        }

        public Criteria andMaterialShortageEqualTo(Integer value) {
            addCriterion("material_shortage =", value, "materialShortage");
            return (Criteria) this;
        }

        public Criteria andMaterialShortageNotEqualTo(Integer value) {
            addCriterion("material_shortage <>", value, "materialShortage");
            return (Criteria) this;
        }

        public Criteria andMaterialShortageGreaterThan(Integer value) {
            addCriterion("material_shortage >", value, "materialShortage");
            return (Criteria) this;
        }

        public Criteria andMaterialShortageGreaterThanOrEqualTo(Integer value) {
            addCriterion("material_shortage >=", value, "materialShortage");
            return (Criteria) this;
        }

        public Criteria andMaterialShortageLessThan(Integer value) {
            addCriterion("material_shortage <", value, "materialShortage");
            return (Criteria) this;
        }

        public Criteria andMaterialShortageLessThanOrEqualTo(Integer value) {
            addCriterion("material_shortage <=", value, "materialShortage");
            return (Criteria) this;
        }

        public Criteria andMaterialShortageIn(List<Integer> values) {
            addCriterion("material_shortage in", values, "materialShortage");
            return (Criteria) this;
        }

        public Criteria andMaterialShortageNotIn(List<Integer> values) {
            addCriterion("material_shortage not in", values, "materialShortage");
            return (Criteria) this;
        }

        public Criteria andMaterialShortageBetween(Integer value1, Integer value2) {
            addCriterion("material_shortage between", value1, value2, "materialShortage");
            return (Criteria) this;
        }

        public Criteria andMaterialShortageNotBetween(Integer value1, Integer value2) {
            addCriterion("material_shortage not between", value1, value2, "materialShortage");
            return (Criteria) this;
        }

        public Criteria andBlockingIsNull() {
            addCriterion("blocking is null");
            return (Criteria) this;
        }

        public Criteria andBlockingIsNotNull() {
            addCriterion("blocking is not null");
            return (Criteria) this;
        }

        public Criteria andBlockingEqualTo(Integer value) {
            addCriterion("blocking =", value, "blocking");
            return (Criteria) this;
        }

        public Criteria andBlockingNotEqualTo(Integer value) {
            addCriterion("blocking <>", value, "blocking");
            return (Criteria) this;
        }

        public Criteria andBlockingGreaterThan(Integer value) {
            addCriterion("blocking >", value, "blocking");
            return (Criteria) this;
        }

        public Criteria andBlockingGreaterThanOrEqualTo(Integer value) {
            addCriterion("blocking >=", value, "blocking");
            return (Criteria) this;
        }

        public Criteria andBlockingLessThan(Integer value) {
            addCriterion("blocking <", value, "blocking");
            return (Criteria) this;
        }

        public Criteria andBlockingLessThanOrEqualTo(Integer value) {
            addCriterion("blocking <=", value, "blocking");
            return (Criteria) this;
        }

        public Criteria andBlockingIn(List<Integer> values) {
            addCriterion("blocking in", values, "blocking");
            return (Criteria) this;
        }

        public Criteria andBlockingNotIn(List<Integer> values) {
            addCriterion("blocking not in", values, "blocking");
            return (Criteria) this;
        }

        public Criteria andBlockingBetween(Integer value1, Integer value2) {
            addCriterion("blocking between", value1, value2, "blocking");
            return (Criteria) this;
        }

        public Criteria andBlockingNotBetween(Integer value1, Integer value2) {
            addCriterion("blocking not between", value1, value2, "blocking");
            return (Criteria) this;
        }

        public Criteria andVerificationTestingIsNull() {
            addCriterion("verification_testing is null");
            return (Criteria) this;
        }

        public Criteria andVerificationTestingIsNotNull() {
            addCriterion("verification_testing is not null");
            return (Criteria) this;
        }

        public Criteria andVerificationTestingEqualTo(Integer value) {
            addCriterion("verification_testing =", value, "verificationTesting");
            return (Criteria) this;
        }

        public Criteria andVerificationTestingNotEqualTo(Integer value) {
            addCriterion("verification_testing <>", value, "verificationTesting");
            return (Criteria) this;
        }

        public Criteria andVerificationTestingGreaterThan(Integer value) {
            addCriterion("verification_testing >", value, "verificationTesting");
            return (Criteria) this;
        }

        public Criteria andVerificationTestingGreaterThanOrEqualTo(Integer value) {
            addCriterion("verification_testing >=", value, "verificationTesting");
            return (Criteria) this;
        }

        public Criteria andVerificationTestingLessThan(Integer value) {
            addCriterion("verification_testing <", value, "verificationTesting");
            return (Criteria) this;
        }

        public Criteria andVerificationTestingLessThanOrEqualTo(Integer value) {
            addCriterion("verification_testing <=", value, "verificationTesting");
            return (Criteria) this;
        }

        public Criteria andVerificationTestingIn(List<Integer> values) {
            addCriterion("verification_testing in", values, "verificationTesting");
            return (Criteria) this;
        }

        public Criteria andVerificationTestingNotIn(List<Integer> values) {
            addCriterion("verification_testing not in", values, "verificationTesting");
            return (Criteria) this;
        }

        public Criteria andVerificationTestingBetween(Integer value1, Integer value2) {
            addCriterion("verification_testing between", value1, value2, "verificationTesting");
            return (Criteria) this;
        }

        public Criteria andVerificationTestingNotBetween(Integer value1, Integer value2) {
            addCriterion("verification_testing not between", value1, value2, "verificationTesting");
            return (Criteria) this;
        }

        public Criteria andEquipmentInspectionIsNull() {
            addCriterion("equipment_inspection is null");
            return (Criteria) this;
        }

        public Criteria andEquipmentInspectionIsNotNull() {
            addCriterion("equipment_inspection is not null");
            return (Criteria) this;
        }

        public Criteria andEquipmentInspectionEqualTo(Integer value) {
            addCriterion("equipment_inspection =", value, "equipmentInspection");
            return (Criteria) this;
        }

        public Criteria andEquipmentInspectionNotEqualTo(Integer value) {
            addCriterion("equipment_inspection <>", value, "equipmentInspection");
            return (Criteria) this;
        }

        public Criteria andEquipmentInspectionGreaterThan(Integer value) {
            addCriterion("equipment_inspection >", value, "equipmentInspection");
            return (Criteria) this;
        }

        public Criteria andEquipmentInspectionGreaterThanOrEqualTo(Integer value) {
            addCriterion("equipment_inspection >=", value, "equipmentInspection");
            return (Criteria) this;
        }

        public Criteria andEquipmentInspectionLessThan(Integer value) {
            addCriterion("equipment_inspection <", value, "equipmentInspection");
            return (Criteria) this;
        }

        public Criteria andEquipmentInspectionLessThanOrEqualTo(Integer value) {
            addCriterion("equipment_inspection <=", value, "equipmentInspection");
            return (Criteria) this;
        }

        public Criteria andEquipmentInspectionIn(List<Integer> values) {
            addCriterion("equipment_inspection in", values, "equipmentInspection");
            return (Criteria) this;
        }

        public Criteria andEquipmentInspectionNotIn(List<Integer> values) {
            addCriterion("equipment_inspection not in", values, "equipmentInspection");
            return (Criteria) this;
        }

        public Criteria andEquipmentInspectionBetween(Integer value1, Integer value2) {
            addCriterion("equipment_inspection between", value1, value2, "equipmentInspection");
            return (Criteria) this;
        }

        public Criteria andEquipmentInspectionNotBetween(Integer value1, Integer value2) {
            addCriterion("equipment_inspection not between", value1, value2, "equipmentInspection");
            return (Criteria) this;
        }

        public Criteria andPlanningMaintenanceIsNull() {
            addCriterion("planning_maintenance is null");
            return (Criteria) this;
        }

        public Criteria andPlanningMaintenanceIsNotNull() {
            addCriterion("planning_maintenance is not null");
            return (Criteria) this;
        }

        public Criteria andPlanningMaintenanceEqualTo(Integer value) {
            addCriterion("planning_maintenance =", value, "planningMaintenance");
            return (Criteria) this;
        }

        public Criteria andPlanningMaintenanceNotEqualTo(Integer value) {
            addCriterion("planning_maintenance <>", value, "planningMaintenance");
            return (Criteria) this;
        }

        public Criteria andPlanningMaintenanceGreaterThan(Integer value) {
            addCriterion("planning_maintenance >", value, "planningMaintenance");
            return (Criteria) this;
        }

        public Criteria andPlanningMaintenanceGreaterThanOrEqualTo(Integer value) {
            addCriterion("planning_maintenance >=", value, "planningMaintenance");
            return (Criteria) this;
        }

        public Criteria andPlanningMaintenanceLessThan(Integer value) {
            addCriterion("planning_maintenance <", value, "planningMaintenance");
            return (Criteria) this;
        }

        public Criteria andPlanningMaintenanceLessThanOrEqualTo(Integer value) {
            addCriterion("planning_maintenance <=", value, "planningMaintenance");
            return (Criteria) this;
        }

        public Criteria andPlanningMaintenanceIn(List<Integer> values) {
            addCriterion("planning_maintenance in", values, "planningMaintenance");
            return (Criteria) this;
        }

        public Criteria andPlanningMaintenanceNotIn(List<Integer> values) {
            addCriterion("planning_maintenance not in", values, "planningMaintenance");
            return (Criteria) this;
        }

        public Criteria andPlanningMaintenanceBetween(Integer value1, Integer value2) {
            addCriterion("planning_maintenance between", value1, value2, "planningMaintenance");
            return (Criteria) this;
        }

        public Criteria andPlanningMaintenanceNotBetween(Integer value1, Integer value2) {
            addCriterion("planning_maintenance not between", value1, value2, "planningMaintenance");
            return (Criteria) this;
        }

        public Criteria andEquipmentCleaningIsNull() {
            addCriterion("equipment_cleaning is null");
            return (Criteria) this;
        }

        public Criteria andEquipmentCleaningIsNotNull() {
            addCriterion("equipment_cleaning is not null");
            return (Criteria) this;
        }

        public Criteria andEquipmentCleaningEqualTo(Integer value) {
            addCriterion("equipment_cleaning =", value, "equipmentCleaning");
            return (Criteria) this;
        }

        public Criteria andEquipmentCleaningNotEqualTo(Integer value) {
            addCriterion("equipment_cleaning <>", value, "equipmentCleaning");
            return (Criteria) this;
        }

        public Criteria andEquipmentCleaningGreaterThan(Integer value) {
            addCriterion("equipment_cleaning >", value, "equipmentCleaning");
            return (Criteria) this;
        }

        public Criteria andEquipmentCleaningGreaterThanOrEqualTo(Integer value) {
            addCriterion("equipment_cleaning >=", value, "equipmentCleaning");
            return (Criteria) this;
        }

        public Criteria andEquipmentCleaningLessThan(Integer value) {
            addCriterion("equipment_cleaning <", value, "equipmentCleaning");
            return (Criteria) this;
        }

        public Criteria andEquipmentCleaningLessThanOrEqualTo(Integer value) {
            addCriterion("equipment_cleaning <=", value, "equipmentCleaning");
            return (Criteria) this;
        }

        public Criteria andEquipmentCleaningIn(List<Integer> values) {
            addCriterion("equipment_cleaning in", values, "equipmentCleaning");
            return (Criteria) this;
        }

        public Criteria andEquipmentCleaningNotIn(List<Integer> values) {
            addCriterion("equipment_cleaning not in", values, "equipmentCleaning");
            return (Criteria) this;
        }

        public Criteria andEquipmentCleaningBetween(Integer value1, Integer value2) {
            addCriterion("equipment_cleaning between", value1, value2, "equipmentCleaning");
            return (Criteria) this;
        }

        public Criteria andEquipmentCleaningNotBetween(Integer value1, Integer value2) {
            addCriterion("equipment_cleaning not between", value1, value2, "equipmentCleaning");
            return (Criteria) this;
        }

        public Criteria andProductRedesignIsNull() {
            addCriterion("product_redesign is null");
            return (Criteria) this;
        }

        public Criteria andProductRedesignIsNotNull() {
            addCriterion("product_redesign is not null");
            return (Criteria) this;
        }

        public Criteria andProductRedesignEqualTo(Integer value) {
            addCriterion("product_redesign =", value, "productRedesign");
            return (Criteria) this;
        }

        public Criteria andProductRedesignNotEqualTo(Integer value) {
            addCriterion("product_redesign <>", value, "productRedesign");
            return (Criteria) this;
        }

        public Criteria andProductRedesignGreaterThan(Integer value) {
            addCriterion("product_redesign >", value, "productRedesign");
            return (Criteria) this;
        }

        public Criteria andProductRedesignGreaterThanOrEqualTo(Integer value) {
            addCriterion("product_redesign >=", value, "productRedesign");
            return (Criteria) this;
        }

        public Criteria andProductRedesignLessThan(Integer value) {
            addCriterion("product_redesign <", value, "productRedesign");
            return (Criteria) this;
        }

        public Criteria andProductRedesignLessThanOrEqualTo(Integer value) {
            addCriterion("product_redesign <=", value, "productRedesign");
            return (Criteria) this;
        }

        public Criteria andProductRedesignIn(List<Integer> values) {
            addCriterion("product_redesign in", values, "productRedesign");
            return (Criteria) this;
        }

        public Criteria andProductRedesignNotIn(List<Integer> values) {
            addCriterion("product_redesign not in", values, "productRedesign");
            return (Criteria) this;
        }

        public Criteria andProductRedesignBetween(Integer value1, Integer value2) {
            addCriterion("product_redesign between", value1, value2, "productRedesign");
            return (Criteria) this;
        }

        public Criteria andProductRedesignNotBetween(Integer value1, Integer value2) {
            addCriterion("product_redesign not between", value1, value2, "productRedesign");
            return (Criteria) this;
        }

        public Criteria andAbnormalShutdownIsNull() {
            addCriterion("abnormal_shutdown is null");
            return (Criteria) this;
        }

        public Criteria andAbnormalShutdownIsNotNull() {
            addCriterion("abnormal_shutdown is not null");
            return (Criteria) this;
        }

        public Criteria andAbnormalShutdownEqualTo(Integer value) {
            addCriterion("abnormal_shutdown =", value, "abnormalShutdown");
            return (Criteria) this;
        }

        public Criteria andAbnormalShutdownNotEqualTo(Integer value) {
            addCriterion("abnormal_shutdown <>", value, "abnormalShutdown");
            return (Criteria) this;
        }

        public Criteria andAbnormalShutdownGreaterThan(Integer value) {
            addCriterion("abnormal_shutdown >", value, "abnormalShutdown");
            return (Criteria) this;
        }

        public Criteria andAbnormalShutdownGreaterThanOrEqualTo(Integer value) {
            addCriterion("abnormal_shutdown >=", value, "abnormalShutdown");
            return (Criteria) this;
        }

        public Criteria andAbnormalShutdownLessThan(Integer value) {
            addCriterion("abnormal_shutdown <", value, "abnormalShutdown");
            return (Criteria) this;
        }

        public Criteria andAbnormalShutdownLessThanOrEqualTo(Integer value) {
            addCriterion("abnormal_shutdown <=", value, "abnormalShutdown");
            return (Criteria) this;
        }

        public Criteria andAbnormalShutdownIn(List<Integer> values) {
            addCriterion("abnormal_shutdown in", values, "abnormalShutdown");
            return (Criteria) this;
        }

        public Criteria andAbnormalShutdownNotIn(List<Integer> values) {
            addCriterion("abnormal_shutdown not in", values, "abnormalShutdown");
            return (Criteria) this;
        }

        public Criteria andAbnormalShutdownBetween(Integer value1, Integer value2) {
            addCriterion("abnormal_shutdown between", value1, value2, "abnormalShutdown");
            return (Criteria) this;
        }

        public Criteria andAbnormalShutdownNotBetween(Integer value1, Integer value2) {
            addCriterion("abnormal_shutdown not between", value1, value2, "abnormalShutdown");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}